﻿using LanguagePolish.Base;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LanguagePolish.EntityModel
{
    /// <summary>
    /// Содержит дополнительные методы для EntityFramework контекста.
    /// </summary>
    public static class EntityExtentions
    {
        /// <summary>
        /// Отменяет все изменения произведенные с данной сущностью.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="context"></param>
        /// <param name="obj"></param>
        public static void Rollback<T>(this DbContext context, T obj)  where T: class
        {
            var objEntry = context.Entry(obj);
            objEntry.CurrentValues.SetValues(objEntry.OriginalValues);
            objEntry.State = EntityState.Unchanged;
        }        
    }
}
